﻿using Renci.Data.Interop.Noaa.Ioos_061;
using Renci.Data.Interop.OpenGIS.Om_101;
using Renci.Data.Interop.OpenGIS.Swe_102;

namespace Renci.Data.Interop.OpenGIS.Gml_32
{
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiPointCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiCurveCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiSurfaceCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiSolidCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GridCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RectifiedGridCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ArrayType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(BagType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractTopologyType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopoComplexType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopoVolumeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopoSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopoCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopoPointType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractTopoPrimitiveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopoSolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EdgeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(FaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NodeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositeValueType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ValueArrayType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Renci.Data.Interop.Noaa.Ioos_061.ValueArrayType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Renci.Data.Interop.Noaa.Ioos_061.CompositeValueType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractTimeSliceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MovingObjectStatusType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDataComponentType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDataArrayType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Renci.Data.Interop.OpenGIS.Swe_102.CurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractMatrixType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SquareMatrixType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DataArrayType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDataRecordType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NormalizedCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractVectorType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Renci.Data.Interop.OpenGIS.Swe_102.EnvelopeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Renci.Data.Interop.OpenGIS.Swe_102.VectorType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PositionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractConditionalType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConditionalValueType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConditionalDataType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SimpleDataRecordType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DataRecordType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractFeatureType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractFeatureCollectionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(FeatureCollectionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(BoundedFeatureType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Renci.Data.Interop.OpenGIS.Gml_32.ObservationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DirectedObservationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DirectedObservationAtDistanceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractContinuousCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DiscreteCoverageType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DynamicFeatureType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DynamicFeatureCollectionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(WaterBodyFeatureType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ObservationCollectionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ObservationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositeObservationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeometryType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GridType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RectifiedGridType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeometricComplexType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeometricAggregateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiSolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiPointType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MultiGeometryType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeometricPrimitiveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractSolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositeSolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SolidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositeSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrientableSurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SurfaceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TinType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PolygonType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositeCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OrientableCurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CurveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LineStringType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PointType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractTimeObjectType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeAggregateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractTimeComplexType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeGridType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeIntervalGridType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeInstantGridType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeGeometricComplexType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeTopologyComplexType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractTimePrimitiveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractTimeTopologyPrimitiveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeEdgeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeNodeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractTimeGeometricPrimitiveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimePeriodType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeInstantType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DefinitionBaseType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeOrdinalEraType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeCalendarEraType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeReferenceSystemType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeOrdinalReferenceSystemType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeClockType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeCalendarType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeCoordinateSystemType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PhenomenonType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompoundPhenomenonType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PhenomenonSeriesType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompositePhenomenonType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConstrainedPhenomenonType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(IdentifiedObjectType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeneralOperationParameterType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OperationParameterGroupType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OperationParameterType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(OperationMethodType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractCoordinateOperationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PassThroughOperationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConcatenatedOperationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeneralTransformationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TransformationType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeneralConversionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConversionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EllipsoidType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PrimeMeridianType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractDatumType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TemporalDatumBaseType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TemporalDatumType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(VerticalDatumType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ImageDatumType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EngineeringDatumType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeodeticDatumType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractCoordinateSystemType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ObliqueCartesianCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TemporalCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AffineCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CylindricalCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PolarCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SphericalCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(UserDefinedCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LinearCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TimeCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(VerticalCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CartesianCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EllipsoidalCSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CoordinateSystemAxisType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeocentricCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TemporalCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ImageCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(EngineeringCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeographicCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AbstractGeneralDerivedCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DerivedCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ProjectedCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(VerticalCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GeodeticCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompoundCRSType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(UnitDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConventionalUnitType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DerivedUnitType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(BaseUnitType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DefinitionProxyType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DictionaryType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml/3.2")]
    public abstract class AbstractGMLType
    {
        private System.Collections.ObjectModel.Collection<MetaDataPropertyType> _metaDataProperties = new System.Collections.ObjectModel.Collection<MetaDataPropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("metaDataProperty")]
        public System.Collections.ObjectModel.Collection<MetaDataPropertyType> MetaDataProperties { get { return this._metaDataProperties; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("description")]
        public StringOrRefType Description { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("descriptionReference")]
        public ReferenceType DescriptionReference { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("identifier")]
        public CodeWithAuthorityType Identifier { get; set; }

        private System.Collections.ObjectModel.Collection<CodeType> _names = new System.Collections.ObjectModel.Collection<CodeType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("name")]
        public System.Collections.ObjectModel.Collection<CodeType> Names { get { return this._names; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("id", Form = System.Xml.Schema.XmlSchemaForm.Qualified, DataType = "ID")]
        public string Id { get; set; }
    }
}
